/**
 * \file InDGraph.h
 * \author Ameen Jaber
 * \author Mohamad Noureddine
 * \author Mohamed Sabra
 * \brief Definition of input data graph classes 
 */
#ifndef INDGRAPH_H_
#define INDGRAPH_H_

#include<util.h>
#include<TPType.h>

class InDGraph {
 public:
  TP_Op_t id;  //!< The id of the type
  std::string graph_name;  //!< The name of the graph
  TPType * V;  //!< The set of Vertices
  std::string V_name; //!< The name of the vertices
  TPType * E;  //!< The relation of edges
  std::string E_name; //!< The name of the edges
  TPType * W;  //!< The function of weights
  std::string W_name;  //!< The name of the weights

  /**
   *\brief Default constructor
   */
  InDGraph();
};

class _algorithm {public:
    Alg_Op_t algid; //!< id of the algorithm
    std::string name; //!< name of the algorithm
    std::string gname; //!< name of the graph to process
    int val_to_start; //!< value of starting index

    _algorithm(){}
};

#endif
